package com.newtouch.bxzs.business.message.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.newtouch.bxzs.business.message.model.*;

import java.util.List;

/**
 * 广告的service类
 * <p>
 * <b>History:</b>
 * <table border="1">
 * <tr>
 * <th>Date</th>
 * <th>Operator</th>
 * <th>Memo</th>
 * </tr>
 * <tr>
 * <td>2020/12/18 14:22</td>
 * <td>liman</td>
 * <td>Create</td>
 * </tr>
 * </table>
 *
 * @author liman
 * @version 1.0.0
 * @since 1.0.0
 */

public interface AdvertisementService {

    /**
     * 查询首页广告列表、查询启动页广告列表、展示首页广告、展示启动页广告
     *
     * @param advertisementVO 广告VO类
     * @return IPage<AdvertisementBO> IPage类
     */
    IPage<AdvertisementBO> getAdvertisementList(AdvertisementVO advertisementVO);

    /**
     * 根据advertisementId查询广告详情
     *
     * @param advertisementId 广告表主键
     * @return AdvertisementBO 广告BO类
     */
    AdvertisementDetailBO getAdvertisementDetail(String advertisementId);

    /**
     * 根据advertisementIds删除广告
     *
     * @param advertisementIds 广告表主键集合
     * @return 受影响行数
     */
    Integer deleteAdvertisement(List<String> advertisementIds);

    /**
     * 修改或新增（启动页广告或首页广告）
     *
     * @param modifyAdvertisementVO 广告新增修改VO类
     * @return String类型
     */
    String modifyAdvertisement(ModifyAdvertisementVO modifyAdvertisementVO);

    /**
     * 修改（启动页或首页）广告发布状态
     *
     * @param changeStatusVO 改变广告状态VO类
     * @return 受影响行数
     */
    Integer changeAdvertisementState(ChangeStatusVO changeStatusVO);

    /**
     * App展示首页广告列表
     *
     * @return AdvertisementBO集合
     */
    List<AdvertisementBO> getAdvertisementListOnApp();

    /**
     * App展示启动页广告列表
     *
     * @return AdvertisementBO
     */
    AdvertisementBO getAdvertisement();
}
